package app.system.service;

import app.system.entity.Page;
import app.system.entity.SysMusic;
import app.system.entity.SysUser;
import app.utils.Result.AjaxResult;
import com.github.pagehelper.PageInfo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface SysMusicService  {
    /**
     * 保存音乐信息
     * @param sysMusic
     * @return
     */
    int saveMusic(SysMusic sysMusic);

    /**
     * 获取全部的音乐信息
     * @return
     */
    PageInfo<SysMusic> getMusicAll(Page page);

    /**
     * 获取全部音乐的列表数据
     * @return
     */
    List<SysMusic> getMusicAllList();

    /**
     * 根据条件查询音乐信息
     * @param sysMusic
     * @return
     */
    List<SysMusic> selectMusicByTage(SysMusic sysMusic);

    /**MultipartFile photoObj，若是本地图片则加入此参数
     * 音乐发布
     * @param musicObj
     * @param parmMap
//     * @param photoObj
     * @param sysUser
     * @return
     */
    AjaxResult musicUpload(MultipartFile musicObj, Map<String,String> parmMap,SysUser sysUser);

    /**
     * 音乐下载
     * @param response
     * @param sysMusic
     * @return
     */
    AjaxResult musicDownLoad(HttpServletResponse response,SysMusic sysMusic);

    /**
     * 根据id删除音乐
     * @param sysMusic
     * @return
     */
    int deleteMusic(SysMusic sysMusic);

    /**
     * 根据gequ名模糊查询
     * @param musicName
     * @return
     */
    List<SysMusic> selectMusicByLike(String musicName);

    /**
     * 通过类型查询条数
     * @param music_type
     * @return
     */
    int selectMusicCount(String music_type);

    /**
     * 获取音乐的条数
     * @return
     */
    int getMusicCount();

    /**
     * 更新音乐信息
     * @param sysMusic
     * @return
     */
    int updataMusic(SysMusic sysMusic);

}
